﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CC;
using Enum;

namespace RFMS
{
    public partial class UrenScherm : Form
    {
        public UrenScherm(string persoonlijkCode)
        {
            InitializeComponent();
            werknemerBeheer = new WerknemerBeheer();
            urenBeheer = new UrenBeheer();
            _persoonlijkCode = persoonlijkCode;
        }

        private string _persoonlijkCode;
        private WerknemerBeheer werknemerBeheer;
        private UrenBeheer urenBeheer;
        private List<string> werkNemers = new List<string>();
        private List<List<object>> statusGebruikers = new List<List<object>>();
        
        private void b_urenInchecken_Click(object sender, EventArgs e)
        {
            l_urenStatus.Text = @"....";
            try
            {
                urenBeheer.Toevoegen(DateTime.Now, Convert.ToInt32(werkNemers[0]), Status.Inchecken);
            }
            catch (Exception)
            {
                MessageBox.Show(@"Vul je persoonlijke code in en druk op 'Gegevens ophalen'", @"Waarschuwing");
            }
            statusGebruikers = urenBeheer.UrenOphalen(werkNemers[1]);
            statusGebruiker(statusGebruikers);
        }

        private void b_urenUitchecken_Click(object sender, EventArgs e)
        {
            l_urenStatus.Text = @"....";
            try
            {
                urenBeheer.Toevoegen(DateTime.Now, Convert.ToInt32(werkNemers[0]), Status.Uitchecken);
            }
            catch (Exception)
            {
                MessageBox.Show(@"Vul je persoonlijke code in en druk op 'Gegevens ophalen'", @"Waarschuwing");
            }
            statusGebruikers = urenBeheer.UrenOphalen(werkNemers[1]);
            statusGebruiker(statusGebruikers);
        }

        private void statusGebruiker(List<List<object>> lijst)
        {
            int index = lijst.Count - 1;
            try
            {
                if ((int)statusGebruikers[index][4] == 1)
                {
                    l_urenStatus.Text = @"ingecheckt";
                    o_urenStatus.FillColor = Color.Green;
                }
                else if ((int)statusGebruikers[index][4] == 2)
                {
                    l_urenStatus.Text = @"uitgecheckt";
                    o_urenStatus.FillColor = Color.Red;
                }
            }
            catch(Exception)
            {
                
            }
        }

        private void UrenScherm_Load(object sender, EventArgs e)
        {
            werkNemers = werknemerBeheer.LijstVanWerknemers(_persoonlijkCode);
            statusGebruikers = urenBeheer.UrenOphalen(werkNemers[1]);

            try
            {
                l_urenNaam.Text = werkNemers[1];
            }
            catch (ArgumentOutOfRangeException)
            {
                MessageBox.Show(@"Vul je persoonlijke code in", @"Waarschuwing");
            }
            statusGebruiker(statusGebruikers);
        }
    }
}
